package cn.tedu.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/*本类用于测试list的迭代*/
public class TestList2 {
    public static void main(String[] args) {
        //1.创建List接口对象
        List <String> list = new ArrayList<String>();

        //2.向集合中添加元素
        list.add("喜羊羊");
        list.add("美羊羊");
        list.add("懒羊羊");
        list.add("沸羊羊");
        list.add("烤全羊");

        //3.测试集合的迭代
        /*1.for循环
        * 2.增强for循环/高效for循环/foreach循环
        * 3.iterator迭代器循环
        * */
        //方式一：因为List集合是有序的，元素是有下标的，所有可以根据下标进行遍历
        for(int i = 0 ;i< list.size();i++){
            //根据下标获取对应位置上的元素
            System.out.println(list.get(i));
        }
        System.out.println("******方式一*****");
        //1 2 :3
        for(String s:list){
            System.out.println(s);
        }
        System.out.println("******方式二*****");
        //方式三：通过集合对象的迭代器进行迭代
        /*1.获取指定集合的迭代器*/
        Iterator<String> it = list.listIterator();
        /*由于我们不知道集合有多少元素，所以用while循环遍历集合所有元素*/
        while (it.hasNext()){
            System.out.println(it.next());
        }
        System.out.println("******方式三*****");
        //方式四：listIterator()是List接口独有的
        //listIterator是Iterator的子接口，可以拥有父类接口的方法，还拥有自己独有的方法（逆序遍历）
        Iterator<String> it2 = list.listIterator();
        while (it2.hasNext()){
            System.out.println(it2.next());
        }
    }
}
